/*
  学习目标：索引签名类型
  作用：允许添加任意的键值对
  场景：无法确定还有什么属性时
  注意：💥
    1. [键名: 类型] ： any。 值配合any使用
    2. 不要滥用，真的需要时采用
*/

type Person = {
  name: string;
  age: number;
  [key: string]: any;
};
const zs: Person = {
  name: '张三',
  age: 18,
};

zs.hobby = 'nv';
zs.genner = '男';
zs.color = '黄';

// React中接收任意props的用法
type AuthRouteProps = {
  path: string;
  // 模拟React组件
  component: any;
  // 表示接收任意的props
  [key: string]: any;
};
function AuthRoute(props: AuthRouteProps) {
  const { path, component, ...rest } = props;
  return null;
}
// <AuthRoute path='/' component={Layout}  title = '123'></AuthRoute>
AuthRoute({
  path: '/',
  component: 'Layout',
  title: 'tset',
});
